package com.sisSaude.formBeans;

import java.util.Vector;

import javax.faces.model.SelectItem;

import com.sisSaude.builders.RelatorioDeEvolucaoDeAvaliacaoAntropometricaBuilder;
import com.sisSaude.collections.AlunosCollection;
import com.sisSaude.dtos.RelatorioDeEvolucaoDeAvaliacaoAntropometricaDTO;
import com.sisSaude.dtos.RelatorioDeEvolucaoDeAvaliacaoAntropometricaFilterDTO;

public class RelatorioDeEvolucaoDeAvaliacaoAntropometrica extends GenericFormBean {

	// fields
	private Vector<SelectItem> alunos = null;
	private RelatorioDeEvolucaoDeAvaliacaoAntropometricaFilterDTO filter = (RelatorioDeEvolucaoDeAvaliacaoAntropometricaFilterDTO) getSessionAttribute("filter", null);
	private RelatorioDeEvolucaoDeAvaliacaoAntropometricaDTO dto = null;
	
	// constructors
	public RelatorioDeEvolucaoDeAvaliacaoAntropometrica() {
		if (getUsuarioCorrente().isAluno())
			getFilter().setIdAluno(getUsuarioCorrente().getIdAluno());
	}

	// getters
	public RelatorioDeEvolucaoDeAvaliacaoAntropometricaFilterDTO getFilter() {
		if (filter == null)
			filter = new RelatorioDeEvolucaoDeAvaliacaoAntropometricaFilterDTO();
		return filter;
	}
	public Vector<SelectItem> getAlunos() {
		if (alunos == null)
			alunos = new AlunosCollection("Aluno.nome").getSelectedItens();
		return alunos;
	}	
	public RelatorioDeEvolucaoDeAvaliacaoAntropometricaDTO getDto() {
		if (dto == null)
			if (filter != null && filter.getIdAluno() > 0)
				dto = RelatorioDeEvolucaoDeAvaliacaoAntropometricaBuilder.builder(filter);
			else dto = new RelatorioDeEvolucaoDeAvaliacaoAntropometricaDTO();
		return dto;
	}
	public boolean isEnabledUsuario() {
		return !getUsuarioCorrente().isAluno();
	}
	
	// action methods
	public void changeAluno() {
		dto = null;
		setAttributeOnSession("filter", filter);
	}	
}